1. Field of the Invention
The present invention relates generally to the fields of operating systems, application software, and the positioning, formatting, and management of arbitrary pop-up controls to provide a more user-friendly computer human interface.
2. Description of the Prior Art
This invention deals with human-computer interface controls that are hereafter referred simply as controls. Controls are defined (Richard Simon, Windows 95, Win32 Programming API Bible, Book 1, 1996, p. 23) as graphic objects of the interface that enable the user to receive information from and provide input to the application. Each type of control is expressed by a graphic displayed on the CRT that provides the user with one or more function activations or attribute specifications. Since this invention is neither concerned with information received from or sent to the application nor with the functions requested or attributes specified as result of such information, the generic term xe2x80x9cServicexe2x80x9d will be employed to refer to whatever purpose a control serves.
Gittins (David Gittins, xe2x80x9cIcon-based human-computer interactionxe2x80x9d, International Journal of Man-Machine Studies, 1986, pp. 519-543) states that computer interface designers have a xe2x80x9c . . . tendency towards fixation on one particular design model xe2x80x9c . . . which can result in . . . technical constraints and design prejudices . . . that [can] be carried over to other applications . . . xe2x80x9d. Gittins further comments that this tendency may explain why many icon designs xe2x80x9cbear striking . . . resemblance to . . . that of the Xerox xe2x80x98Starxe2x80x99xe2x80x9d (pp. 521-522). Shneiderman (Ben Shneiderman, Designing the User Interface: Strategies For Effective Human-Computer Interaction, 3rd ed, 1998) communicates that this tendency still prevails twelve years after Gittins since he can observe that xe2x80x9c . . . pull-down menus are constantly available to . . . the Xerox Star, Apple Lisa and Apple Macintosh . . . and versions have become standardized with Windows, IBM OS/2, OSF/Motif.xe2x80x9d (p. 242). While this trend is not universal, as shown by the NeXT workstation of the late 1980""s, the prevailing menu design currently remains some variant of the pull-down style. It may be asked whether the current, nearly universal style of a permanent display at the top of the computer screen is the result of Gittins"" observed design inertia or whether this design possesses uniquely desirable human factor merit. Main arguments in defense of the prevailing pull-down design are that novice users find the permanent display of choice-selections easy to learn and that all users benefit from rapid access once the fixed locations of choice-selections have become familiar. The prior art concedes that such permanent displays require substantial screen real estate but contends that the fixed, relative locations of choice-selections in the pop-up submenus present user-friendly capabilities to the user.
An appraisal of the prior art of control display identifies several weaknesses present in the prior art that lead to sub-optimum display and management of controls. One such weakness is inadequate provision for the user to easily consult a generally small screen area of specific interest while making selections from a control. Research by Scott (D. Scott and J. M. Findlay, xe2x80x9cOptimum display arrangements for processing status informationxe2x80x9d, International Journal of Man-Machine Studies, 1991, pp. 399-407) investigates the benefits of displaying near the xe2x80x9cpoint of regardxe2x80x9d information needed to perform current activity. Shneiderman expands on desirable characteristics of pop-up control placement by contending that the pop-up controls should appear xe2x80x9c . . . close to the current focus . . . to limit eye motion, but far enough away to avoid obscuring the current focus.xe2x80x9d (Shneiderman, op. cit., p. 453). The convention with pull-down designs is that the first submenu displayed is popped-up as a vertically aligned list of choice-selections (hereafter the Vertical-Linear format) immediately below the main menu selection. Each additional submenu is generally displayed abutting its parent submenu on the right. Study of placement strategies employed for display of other control types reveal that dialog boxes are typically displayed near the screen center irrespective of the location of the area of user interest. Closed combo boxes, which generally appear either in the toolbar or in a dialog box, drop-down their lists at the location of the parent graphic irrespective of the desirability of that location. In general, it must be concluded that the positioning strategy employed by current GUI designers give inadequate attention to user benefits that follow from juxtaposing the control and the area of user interest.
There does exist a class of pop-up controls unrelated to the pull-down menu that are not constrained by the traditions of the pull-down design. The Microsoft Windows context specific menu that displays when the user right-clicks on an identifiable screen object exemplifies this menu type. Conceptually this pop-up menu can be positioned anywhere within the xe2x80x9cDisplay-zonexe2x80x9d; i.e., the screen area into which a control is rendered. When space permits, Microsoft has chosen to position it with its top-left corner coincident with the cursor hot-spot. Since the screen object clicked is likely to be the area of current interest this display position often results in overlay of a portion of this area.
This invention differentiates between the concepts of the xe2x80x9cArea of Current Focusxe2x80x9d and the xe2x80x9cWork-Areaxe2x80x9d. The area of current focus is the area of the screen that is the actual area of immediate concern to the user. The work-area is defined as a screen area identified by the Control Subsystem to be the user""s area of current focus. Ideally the work-area and area of current focus coincide but exigencies of a user task do not always make this possible, as is elaborated later.
In addition to determining the desirability of displaying a control near to but not overlaying the area of current focus, human factor experts have found that users expect consistency in the performance of the GUI. Machiraju (Vijay Machiraju, xe2x80x9cA survey on research in graphical user interfacesxe2x80x9d, http://citeseer.nj.nec.com/cachedpage/180180/4, 1996, pp. 1-25) reviews several authorities to conclude that a consistent GUI: (1) permits users to anticipate system behavior, (2) fulfills user expectations, (3) aids in the development of automaticity, (4) has extensive commonality between diverse applications, and (5) is natural to the user""s way of thinking. Hix (Deborah Hix and R. Rex Hartison, Developing User Interfaces: Ensuring Usability Through Produce and Process, 1993) promotes the xe2x80x9cprinciple of least astonishmentxe2x80x9d by contending that xe2x80x9c . . . consistency is one of the most significant factors affecting usability . . . [since] . . . users expect certain aspects of the interface to behave in certain ways, and when this does not happen, it can be very confusing.xe2x80x9d (pp. 34-35). When vendors do design a control to pop-up near the work-area consistency is normally sought by locating the control via some relation based wholly on the work-area location. Alternate positioning processes are implemented when the standard positioning algorithm positions control at a location causing the display-zone to clip the control display. One approach that avoids clipping is to shift the display to make the clipped edge coincide with the display-zone edge causing the clip. Sun (Sun Microsystems and ATandT, Open Look: Graphical User Interface Functional Specifications, 1989, pp. 336-338) employs this approach but, as shown below, not in a manner that assures minimization of work-area overlay. An alternate algorithm might position a control to the left rather than the right of the work-area; an approach that violates the principle of least astonishment.
These inadequacies of the prior art may represent further manifestations of Gittins observation that designers fixate on a particular model. While the pull-down main menu and pop-up context specific menus were developed prior to recent human factor studies, these styles still prevail in the face of research indicating the pull-down design contains features that can be improved. New art is needed that continues to avoid clipping, but also: (1) minimizes overlay of the area of current user interest, (2) juxtaposes the control and the area of current user interest, and (3) supports the principle of least amazement.
Another issue of concern with the prior art is the presumption implicit in the pull-down menu design that the usability of controls displayed in tiled format; i.e., multiple windows displayed in a manner such that no window overlaps another, is superior to alternate formats. This problem is exemplified by considering the usability of how a well known application software displays a xe2x80x9cControl Pathxe2x80x9d; i.e., the ordered sequence of descendant controls leading from the initial control displayed to the current control. A left-click on the xe2x80x9cToolsxe2x80x9d choice-selection of the main menu displays the xe2x80x9cToolsxe2x80x9d submenu in Vertical-Linear format. Selection of the xe2x80x9cMacrosxe2x80x9d choice-selection from the xe2x80x9cToolsxe2x80x9d submenu displays the xe2x80x9cMacrosxe2x80x9d submenu positioned to the right of the xe2x80x9cToolsxe2x80x9d submenu with its top boarder aligned with the xe2x80x9cMacrosxe2x80x9d region. A selection from the xe2x80x9cMicrosxe2x80x9d submenu displays a third submenu positioned to the right of the xe2x80x9cMacrosxe2x80x9d display with its top boarder aligned with the chosen selection. To navigate the three submenus of this control path, the user must perform several eye saccades to traverse a screen area that consumes approximately 20 percent of the total display-zone and extends diagonally over approximately one-half its vertical and horizontal dimensions. Finally, a selection from the final submenu removes the three levels of tiled submenus and displays a dialog box approximately at the CRT center.
To consider the usability aspects of this example it is appropriate to reference research comparing different styles of window displays. Davies (S. E. Davies, K. F. Bury, and M. J. Darnell, xe2x80x9cAn experimental comparison of a windowed vs. a non-windowed environmentxe2x80x9d, Proceedings of the Human Factors Society 29th Annual Meeting, 1986, pp. 250-254) found that while users of a multiple window system make fewer errors than users performing the same task on a single window system, users of the single window system performed the assigned task more rapidly. This arose because of the time spent by users to position the windows of a multiple window system. Of relevance to this invention is that Davie also found that when window-positioning time is removed from total time, a multi-window environment is the faster to utilize. An investigation of overlapped versus tiled windows undertaken by Bly (S. A. Bly and J. K. Rosenberg, xe2x80x9cA comparison of tiled and overlapped windowsxe2x80x9d, CHI ""86 Proceedings, 1986, pp. 101-106) compared a regular task to an irregular task. A regular task is defined as a task in which all necessary information is simultaneously available via a set of tiled windows while an irregular task requires windows be overlapped if all necessary information is to be available on the screen. Bly found that users performed regular tasks more rapidly with tiled windows but additionally found that when faced with irregular tasks requiring substantial window management users performed more rapidly with overlapped windows. Gaylin (Kenneth Gaylin, xe2x80x9cHow are windows used? Some notes on creating an empirically-based windowing benchmark taskxe2x80x9d, CHI ""86 Proceedings, 1986, pp. 96-100) measured the time spent at each task during start-up of a multiple window system and found that 65 per cent of start-up activity is spent performing the open, create, move, and resize management activities preparatory to undertaking production tasks. Once production commenced users spend 33 percent and 60 percent respectively of their time performing window management and navigation tasks. Since start-up time is generally small relative to production time, Gaylin recommends that system designers should emphasize making navigation as simple and as rapid as possible.
While these three investigations do not directly compare pull-down to overlapped control displays, aspects of each study have applicability to this comparison. It may appear that the prior art meets Davies"" stricture of minimal windows management time and that tiled windows of the prior art should be more productive than overlapped displays since many commonly used controls generally conform to Bly""s definition of a regular task. Additionally, based on menu research (see: Kent L. Norman, xe2x80x9cSearch behavior in hierarchical menu structuresxe2x80x9d, The Psychology of Menu Selection: Designing Cognitive Control at the Human/Computer Interface, 1991, pp. 214-236) the prior art appears to meet Gaylin""s recommendation that navigation time between controls be minimized. However, these studies generally investigate environments where the user must be able to reach any of multiple, independent windows from any other window in arbitrary order. This is in contrast to an environment containing multiple windows in which a given window can only be reached by traversing a fixed sequence of windows while not always having the ability to return to any arbitrarily ancestor window in the control path. Control management additionally imposes the constraint that a desired window not in the control path can only be reached by returning to an ancestor common to both the current and the desired window. Moreover, it is to be recalled that when the user need not perform the sizing and positioning of controls, Davies"" finds the multi-window environment to be desirable. The fact that Davies"" also found that multiple windows reduces the error rate enhances this result. Given Bly""s finding that overlapped windows that display fixed, regular content can be utilize as productively as tiled windows, it can be concluded that since many control tasks generally conform to the definition of a regular task, controls displayed in overlapped format are not disadvantaged. In addition to fully automating display of controlsxe2x80x94a capability in common with the prior artxe2x80x94the new art will be shown to permit more rapid physical navigation through the controls by notably reducing distances traversed.
Research additionally indicates that by employing paging rather than scrolling the new art will reduce the cognitive demands of managing controls that contain lists exceeding available display space of the control graphic. According to Piolat (A. Piolat, J. Roussey, and O. Thunin, xe2x80x9cEffects of screen presentation on text reading and revisingxe2x80x9d, International Journal of Human-Computer Studies, 1997, pp. 565-589) this can be attributed to xe2x80x9c . . . page readers [having] a better grasp of text content due to . . . their use of spatial features of text . . . presented in page formatxe2x80x9d (p. 583). Piolat""s results provide a cognitive explanation to the earlier Schwarz (E. Schwarz, I. Beldie, and S. Pastoor, xe2x80x9cA comparison of paging and scrolling for changing screen contents by inexperienced usersxe2x80x9d, Human Factors, 1983, pp. 279-282) conclusion that xe2x80x9c . . . paging was clearly preferred for the reading of continuous text. . . xe2x80x9d, (p. 281). Thus, paged windows accords with the Gaylin recommendation of optimizing navigational capabilities.
Another class of limitations of the prior art relates to how users of different skill levels navigate within the current control and between the different controls. Skilled users tend not to make many errors, but do find a control unfriendly if it fails to satisfactorily meet their needs for efficient control navigation. Novice users make frequent errors as they navigate controls because of uncertainty regarding services available, specifics of individual services, or the path to a desired service. Such users need the availability of xe2x80x9cFull Reverse Traversexe2x80x9d; i.e., the capability to conveniently redisplay any arbitrary control of the control path. Full reverse traverse enables the user to expedite error correction and to more rapidly learn capabilities of the Control Subsystem.
The need to decide whether to provide for single or multiple selection from a control presents interface designers with three conundrums. Application designers need to correctly determine whether users will employ a control to mainly make single selections, mainly make multiple selections, or arbitrarily make either single or multiple selections. If it is decided that users will generally make multiple selections from a control, the control can explicitly provide a capability enabling the user to declare completion of service selection. Typically this capability takes the form of a button displayed within the control""s graphic labeled with a synonymic term denoting the action xe2x80x9cDonexe2x80x9d. If interface designers have correctly determined that multiple selections from a control will be the norm, the control will be perceived as user-friendly. However, if users normally select a single option from a control, a design that requires an explicit performance of xe2x80x9cDonexe2x80x9d after each selection will not be considered particularly user-friendly. The second conundrum arises when control designers decide that users will typically make a single selection from a control when in actuality users typically make multiple selections. To process a single selection, the Control Subsystem identifies a request for service, performs the service, and immediately executes an implicit xe2x80x9cDonexe2x80x9d. If single selection is truly the norm, this design feature will be considered user-friendly since explicit termination of the Control Subsystem is not required. However, presenting the user with a single selection capability when multi-selection is the norm generally requires the user to regenerate the complete control path to affect each selection. This imposes a greater burden on the user than imposed by the burden of terminating a multi-selection capability when single selection is performed. Designers generally resolve these two conundrums by acquiring appropriate data via user activity logs, focus groups, or other observational approaches.
The third conundrum, not been fully resolved by the prior art, arises when users variably utilize a control for single selections and for multiple selections. Current versions of Macintosh software provided by the Apple Corporation implement what is termed xe2x80x9ctear-offxe2x80x9d in which a sub-menu is detached from its parent and dragged to a different location. Sun Microsystems provide a similar capability via the pinned menu while the NeXT workstation provided for a detached menu. Each of these commercially available approaches requires an initial manual action by the user with a subsequent traverse into the now permanently displayed submenu to affect closure. Since these techniques require the user to explicitly decide on a location for the control, they do enable the user to select an optimum location. Macloed (Miles Macloed and Penelope Tillson, xe2x80x9cPull-Down, HoldDown, or Staydown? A Theoretical and Empirical Comparison of Three Menu Designsxe2x80x9d, in D. Drapier, et al. (ed) Human-Computer Interactionxe2x80x94Interact ""90, 1990, pp. 429-433) investigated the StayDown design in which an explicit user action, such as pressing a specified key, causes a menu to remain displayed until the explicit action is terminated. Macleod contends that users will accept and successfully perform the required explicit action. Other experts will contend that users commonly dislike control management that requires engaging one hand for what may be a protracted period.
Meeting novice user needs requires a user-friendly capability that enables the user to correct an erroneous selection and to browse available controls while learning. A major aspect of this capability is to enable the user to re-access an arbitrary ancestor control via provision of full reverse traverse capability. The prevailing pull-down menu design provides this capability for submenus via its tiled provision of each submenu selected. An unresolved problem of the current pull-down display is to permit continuance of tiled display when non-menu controls such as the dialog box are to be displayed. Rather than resolving this problem, the prior art typically ignores it by removing all menu controls before displaying a non-menu control. When portions of a control path are removed in this manner the user is unable to directly redisplay an arbitrary ancestor control and may be required to recommence the traverse from its beginning to affect the desired redisplay. Requiring the user to regenerate the control path for this reason is undesirable because it lowers productivity and makes learning the structure of interrelated controls more difficult.
Closely related to failure to provide full reverse traverse are limitations in the way the prior art provides the undo capability. In general, users are provided with linear undo; i.e., performance of undo in the reverse chronologic order in which services were performed. Given that it was advocated above that users be empowered to dynamically initiate multiple selection capability with the consequent possibility of multiple controls descending from a single ancestor, it can be anticipated that the user may desire undo services that have been initiated from an arbitrary control of the control path. There exists a substantial literature presenting desirable characteristics of arbitrary undo-redo. Yang (Yiya Yang, xe2x80x9cInterface usability engineering under practical constraints: A case study in the design of undo supportxe2x80x9d, in D. Diaper, et al. (ed), Human-Computer Interactionxe2x80x94INTERACT ""90, 1990, pp. 549-554) summarizes this literature with focus on methods of linear undo. Berlage (Thomas Berlage, xe2x80x9cA selective undo mechanism for graphical user interfaces based on command objectsxe2x80x9d, ACM Transactions on Computer-Human Interaction, 1994, pp. 269-294) also provides an excellent review of technical literature on the art of undo with emphasis on the undoing of arbitrary services that have been performed. Myers (Brad A. Myers and David S. Kosbie, xe2x80x9cReusable Hierarchical Command Objectsxe2x80x9d, Proceedings CHI ""96: Human Factors in Computing Systems, 1996, pp. 260-267) provides a synopsis of Amulet, a set of software tools to aid the implementation of undo capability. While the preferred implementation presented below does suggest a basic undo capability that fulfills the needs of this invention, it is to be noted that the art disclosed herein only relates to the means of activating desired aspects of the undo capability. This invention does not offer any claims for new art relating to the technology of actually performing undo. What this invention discloses is a user friendly means of activating undo of arbitrary services.
The preceding review of the prior art of control usage reveals that usability problems fall into the categories of better positioning of the control display, better formatting when multiple controls are displayed, and the need to offer more user-friendly methods of control navigation. New art disclosed by this invention addresses these issues in ways that are in part novel and in part beneficial reconfigurations of prior art that have not heretofore been conceptualized by persons of normal skill in these arts.
While various definitions are equally applicable and obvious to those of normal skills in these arts, the top-left corner of a rectangle displayed on the CRT is defined by this invention to be its origin. While the origin of the screen axis system is normally presumed to be the lower-left corner of the display-zone, a person of normal skill can translate the origin of the coordinate system to any desired, alternate location. Entities within this axis system that relate to placement of controls are the display-zone, the work-area, and the cursor location. For purposes of this invention it is only consequential that the origin and dimensions of the display-zone are made available to the Control Subsystem; how these values are acquired is not consequential.
It is presumed the work-area is identified either explicitly or implicitly. An explicit work-area is identified by underline, highlight, marque, or other visual effect with examples being: a word, sentence, or table in a word processor; a geometric shape, line, or text block in a graphics system; a cell or row in a spread sheet application. In the absence of an explicit work-area, the Control Subsystem will identify an implicit work-area by determining a screen area, which, ideally, will coincide with but at least include the area of current user interest. A recommended but not exclusive approach to identifying an implicit work-area is to consider it to be an area of predefined dimensions centered on the cursor at the moment of Control Subsystem activation. If an implicit work-area is identified in this manner, when the cursor is located close to a display-zone boundary a portion of the presumptive, implicit work-area may exceed the display-zone bounds. In this case the work-area location may be shifted in a manner to be wholly contained within the display-zone.
As noted, Gittins found that software designers tend to fixate on one particular design model. It was concluded in the preceding review of prior art that designers possibly have fixated on the pull-down design to display the main menu, on the permanently displayed toolbar, and on a fixed relation to the work-area to position context specific controls. This invention surmounts these possible fixations by disclosing a three-step process that calculates a position for the initial control displayed at activation of the Control Subsystem that is based on the location of the center of the work-area relative to the center of the display-zone. The first step introduces the concept of xe2x80x9cCenter-seekingxe2x80x9d which appraises the location of the work-area center relative to the center of the display-zone and determines the direction that is away from the work-area center and toward the display-zone center. It is to be understood that the step of center-seeking only provides the predictable direction in which the control display will appear relative to the work-area. The second step of control positioning determines the optimum coordinates in the direction of center-seeking for the origin of the control based on user specified offsets from the work-area center. Since the optimum location may result in clipping of the control display, the third step determines whether the control""s optimum location produces clipping and, if so, calculates an alternate best location. The best location for a control is defined to be that location that avoids clipping while positioning the control""s origin such that the maximum display minimally overlays the work-area.
Calculations subsumed by these three steps may be performed in various ways. The direct approach is to perform calculations for the actual quadrant containing the work-area center. This approach requires that unique, albeit similar, procedures are available to individually handle each of the four quadrants defined when the axis origin is translated to the display-zone center. An alternate approach is to employ quadrant symmetries to mathematically translate the work-area to a predetermined quadrant, employ a single procedure for the desired calculations, and once calculations are complete transform coordinates of the control""s location back to the originating quadrant. Another approach is to systematically proceed through calculations required to position the control display and perform conditional tests to determine the appropriate calculation when consideration of the direction of center-seeking is required. The preferred implementation applies this latter approach. It is to be noted that this invention presupposes an ability to access coordinates and dimensions of a work-area. Thus, the applicability of this invention is not predicated on how the work-area is identified and quantified. Also, applicability of this invention is in no way predicated on employment of the preferred implementation since the procedures disclosed herein have already indicated the necessary calculations can be performed in various ways.
To implement the three-step control locating sequence, the concept of the xe2x80x9cMaximum Display Regionxe2x80x9d (hereafter commonly called the Maximum Display) is introduced as the basis for positioning the initial control and any descendant controls present. To understand implications of the maximum display we first consider the components of a control. The purpose of such controls as the menu, combo box, check boxes, radio buttons, or other control displaying choice-selection lists is to make available a defined set of services. A unique xe2x80x9cRegionxe2x80x9d identifies each service available for activation via the control. A region is defined as the screen area that activates the related service when selected by the user. The design of such controls as the toolbar can present sub-regions within a region in a manner to group related services. This invention defines the set of contiguous regions displayed by such controls as the xe2x80x9cShellxe2x80x9d, 2A201. The width of a control, 5D07, is defined to be the width of the shell with the height of a control, 5D10, defined as the height of the shell, 5D08, plus height of the title bar, 5B06. If the number of choice-selections does not exceed some maximum number, it is possible to display all choice-selections via a single page. Otherwise the choice selections are divided into multiple pages using an algorithm appropriate to the task that for controls displayed via the Spider format is recommended to be the page-managing algorithm disclosed by U.S. Pat. No. 6,239,803. For controls such as the dialog box that can contain multiple controls of differing type displayed in non-contiguous locations, the bounding rectangle defines the shell dimensions.
When a control display comprises a current control with ascendant controls, calculation of the maximum control""s absolute maximum width requires referencing each possible control that can descend from the initially requested control and determine the control having the greatest width. To this is added a horizontal displacement for each ascendant control of the current control. The absolute maximum width of the maximum display is the width of that control plus displacement for its ancestors that is the greatest. The absolute maximum height of the control display is similarly calculated but additionally includes the height of any title bars. FIG. 1A illustrates the distinction between the maximum display, 1A08, the maximum shell, 1A10, the current display, 1A11; and the current shell, 1A12.
This invention recognizes that the control responsible for greatest absolute width need not be the control responsible for greatest absolute height. It is also recognized that the control responsible for greatest absolute width and the control responsible for greatest absolute height may each have a low likelihood of being displayed. If display of controls responsible for the greatest dimensions is unlikely, exigencies of an application may suggest that height and width values be chosen that are less than the absolute maximums. This approach will result in the control display being positioned closer to the work-area than occurs when absolute maximum control dimensions are used thus better meeting Shneiderman""s recommendation of juxtaposing the area of user interest and the control display. On balance, juxtaposing the display and work-area in this manner can be expected to be considered the more user-friendly approach even though the location calculated may on occasion result in greater overlay of the work-area than is minimally required. Under circumstances where the work-area is large and located near the display-zone center and with dimensions of the selected control greater than the dimensions declared for the maximum display, the control positioning procedures here disclosed may result in clipping of the control display. Processes 11C06 and 11C08 of the preferred implementation present a means to avoid this contingency. Whether dimensions of the maximum display are based on the absolute greatest, the likely greatest, or some other appropriate application specific criterion, the source of these dimensions does not generally influence the procedures for calculating the best location for the maximum display. Consequently, this invention presupposes that these dimensions are determined by procedures exogenous to this invention.
Although coordinates of its origin specify the position of the maximum display, this result is achieved only after a sequence of calculations determines the best location for a xe2x80x9cReference Pointxe2x80x9d. The reference point employed by this invention is identified by presuming the origin of the coordinate system to be coincident with the center of the work-area and that the maximum display is positioned in the quadrant containing the display-zone center such that two of its sides are coincident with the axis of the coordinate system. The reference point is the corner of the maximum display coincident with the origin. Because the implementation presented below always references a corner of the maximum display during its positioning sequence, the reference point will hereafter be termed the reference corner. Center-seeking is the repositioning of the maximum display from this initial position such that the reference corner is moved away from the work-area center and toward the display-zone center. FIG. 1A illustrates a work-area, 1A24, located in quadrant #3; i.e., the quadrant down-and-left of the display-zone center, 1A06. For a work-area in quadrant #3 the direction of a center-seeking maximum display, 1A08, is up-and-right of the work-area with the reference corner being the lower-left corner, 1A22, of the maximum display. Step two of the calculations indicated above determines the optimum location for the display by positioning the reference corner at coordinates calculated relative to the center of the work-area using parameters rDisplayDisplace_X, 5C16, and rDisplayDisplace13 Y, 5C17. These two parameters specify the percent of one-half their respective work-area dimension that the reference corner is to be displaced from the work-area center in the dimension denoted by the xe2x80x9c13 Xxe2x80x9d and xe2x80x9c13 Yxe2x80x9d designations. A positive value for these variables is in the direction of center-seeking with a negative value being in the direction away from center-seeking. FIG. 1A illustrates the case of rDisplayDisplace_X=+0.5 and rDisplayDisplace_Y=+1.0. FIG. 2A1 illustrates the case of a work-area located in quadrant #1 with both the rDisplayDisplace_X and rDisplayDisplace_Y set to +1.0. For this latter scenario the reference corner is the top-right corner, 1A22, of the maximum display, 1A08.
Initial calculations of step three determine whether it is possible to position the reference corner at the coordinates specified by rDisplayDisplace_X and rDisplayDisplace_Y without clipping by comparing dimensions of the maximum display to xe2x80x9cFree Space.xe2x80x9d Horizontal free space is defined as the distance between the X-coordinate of the optimally located reference corner and the most distant vertical boundary of the display-zone. Vertical free space is analogously defined as the distance between the Y-coordinate of the optimally located reference corner and the most distant horizontal boundary of the display-zone. The values of horizontal and vertical free space represent the maximum width and height respectively of any display that can be rendered to the screen without clipping when the reference corner is positioned as specified by rDisplayDisplace_X and rDisplayDisplace_Y. Visual interpretation of horizontal and vertical free space is graphically provided in FIG. 1A by and respectively. Constraint occurs in a dimension when that dimension of the maximum display exceeds the free space available for its display. There are thus four possible constraint conditions: (1) no constraint, (2) horizontal constraint, (3) vertical constraint, and (4) simultaneous horizontal and vertical constraint. The diagrams of FIG. 1B depict these four possible constraints for a Vertical-Linear formatted control referencing a work-area having its center in quadrant #3. FIG. 1C similarly depicts the four possible constraints for a Spider formatted display referencing a work-area with its center in quadrant #1.
It will be uncommon to encounter constraint conditions with active displays common to notebook and desktop computers for work-areas that are, say, two-inches wide and one-inch tall. Consider an application having a typical display-zone of 11.5-inch width and 6.25-inch height, a two-inch wide work-area, and values of 1.0 and 0.0 for rDisplayDisplace_X, 5B03, and rDisplayDisplace_Y, 5B04, respectively. For horizontal constraint to even be possible with this scenario, the maximum display width must exceed
((display13 zone13 width)xe2x88x92(work13 area13 width))/2=(11.5xe2x88x922.0)/2=4.75 inches.
Even when the maximum display width exceeds 4.75 inches, adjustments detailed below effectively reset rDisplayDisplace_Y to 1.0. Unless this resetting of rDisplayDisplace_Y creates vertical constrained, the full 11.5-inch width of the display-zone can be employed to render the control display. While work-areas approximating the size suggested will be common for many types of application usage, work-areas of larger dimensions will be encountered. The preferred implementation replaces user specified values for the rDisplayDisplace parameters with values more conducive to usability when the ratio of the work-area height to CRT height or the ratio of work-area width to CRT width exceed a value specified by the parameters and 5B11.
When a single constraint exists in a dimension for which rDisplayDisplace greater than 1.0, the value of that rDisplayDisplace is implicitly reset to 1.0 and the maximum display re-tested for constraint. If the constraint has been removed the issue is resolved. If the constraint remains and if the other dimension has a rDisplayDisplace less than 1.0 the rDisplayDisplace of this other dimension is implicitly set to 1.0 and the maximum display re-tested for constraint. Again, if the constraint has been removed the issue is resolved. If constraint remains, procedures discussed below that manage dual constraint are implemented. To illustrate the four constraint scenarios consider FIG. 1B for the values of rDisplayDisplace_X=1.0 and rDisplayDisplace_Y=0.0. For the work-area locations and the display-zone dimensions depicted, these rDisplayDisplace values result in optimum positions that clip the maximum display in the manner depicted by the dotted rectangles extending beyond the display-zone. Avoidance of the horizontal constraint depicted by FIG. 1B2 implicitly resets rDisplayDisplace_Y to 1.0 and the test for vertical constraint repeated. If setting rDisplayDisplace_Y to 1.0 does not create vertical constraint, aligning the right edge of the maximum display with the right boundary of the display-zone avoids clipping, avoids work-area overlay, and minimally displaces the reference corner from its optimum location. Avoidance of clipping in FIG. 1B3 only requires that the rDisplayDisplace_Y value be allowed to float to permit aligning of the top edges of the maximum display and display-zone. Only when both dimensions remain constrained after adjustments that assure both rDisplayDisplace_X and rDisplayDisplace_Y equal 1.0 is it necessary to overlay a portion of the work-area to avoid clipping. FIG. 1B4 makes it visually apparent that under double constraint the amount of work-area overlay is minimized when the top-right corners of the maximum display and display-zone coincide. It may appear that the specifications provided by Sun (Sun Microsystems and ATandT, op. cit., pp. 337-338) to avoid clipping employ the approach just disclosed. This conclusion is incorrect. This invention determines a control""s location based on a relation of the work-area and the display-zone that results in the control always being positioned to maximize free space. The Sun algorithm positions the control relative only to the work-area, which does not assure a control location that guarantees maximum free space. Thus, while the Sun positioning algorithm can maximize the control""s distance from the display-zone borders to result in the positioning disclosed by this invention, Sun""s positioning algorithm will do so an expected fifty percent of the time.
Symmetry between quadrants becomes apparent when FIG. 1C is compared with FIG. 1B. In FIG. 1C the work-area appears in quadrant #1 with the direction of center-seeking being down-and-left. As with FIG. 1B, when the dimensions do not exceed their respective free space constraint does not exist and the reference corner can be positioned at its optimum location. FIG. 1C2 illustrates the case where horizontal constraint is removed by floating the rDisplayDisplace_X value while FIG. 1C3 removes vertical constraint by resetting rDisplayDisplace_X to 1.0 and letting rDisplayDisplace_Y float. As with FIG. 1B4, FIG. 1C4 depicts that with double constraint it is not possible to avoid clipping of the maximum display without at least some overlay of the work-area.
Preceding disclosures reveal the four major benefits that accrue from the new art of control positioning; namely: (1) center-seeking strategy always displays the control at a generally predictable location, (2) except for special cases, the control will be displayed at the optimum center-seeking location specified by the user, (3) when the optimum location would cause clipping, a best location closest to the optimum location is determined, and (4) if overlay of the work-area cannot be avoided, the best location avoids clipping in a manner that overlays the smallest percent of the work-area.
This invention discloses a novel form of cascaded, overlapped windows. Since the concept of cascading itself is not innovative, a review of the history of window technology will show that the formulation of the cascade style disclosed herein is truly novel. Englebart first proposed multiple windows in 1968. Smalltalk, the first programming language to support overlapped and pop-up windows, was used to program the Xerox Star graphic user interface introduced in 1981. Multiple windows appeared commercially with the Apple Lisa in 1982, followed by the Apple Macintosh in 1984. Microsoft Windows and IBM OS/2 appeared shortly thereafter but did not initially support overlapped windows. The X Windows system, developed by MIT and introduced in 1984, is generally considered the definitive statement on overlapped window technology. (Brad Myers, xe2x80x9cA brief history of human computer interaction technologyxe2x80x9d, ACM Interactions, 1998, pp. 44-54; Jeff Johnson, Teresa Roberts, et al., xe2x80x9cThe Xerox Star: A Retrospectivexe2x80x9d, IEEE Computer, 1989, pp. 11-29; R. Perkins and D. S. Keller, xe2x80x9cInventing the Lisa User Interfacexe2x80x9d http://developer.java.sun.com/developer/techDocs/hi/papers/Lisa/Interactionsxe2x80x9496.html).
The idea of cascading display was introduced early in the history of graphic user interface technology with the means of its generation recently expressed by Shneiderman (Shneiderman, op. cit., pp.457-458) as: xe2x80x9c . . . a sequence of windows from the upper left down to the lower right . . . successive windows are offset below . . . and to the right to allow each window title to remain visiblexe2x80x9d. Galitz (Wilber Galitz, The Essential Guide to User Interface Design: An Introduction To GUI Design Principles And Techniques, 1997), another recent authority, devotes a single short paragraph (p. 223) to cascade display that effectively restates Shneiderman""s description.
To the extent operating system vendors support automated cascade generation, reference to their style manuals shows that cascaded windows employs the style defined by Shneiderman. In a document of June 1992 the IBM Corporation (IBM Reference: IBM TDB n1a 06-92 p.174-175 available by searching http://m.spi.org) entitled xe2x80x9cDetermining where to place panels in a windowed environmentxe2x80x9d states that to create a window cascade xe2x80x9c . . . indent the new panel . . . and place it just below the Action Bar of the owner panel (cascading) . . . If there is no Action Bar . . . the new panel will be cascaded just below the Title Bar of the owner.xe2x80x9d Although the Sun user interface specifications do not explicitly mention the cascade format, the concept is implied in xe2x80x9cDisplaying Submenusxe2x80x9d (Sun Microsystems and ATandT, op. cit., p. 145).
It is not the concept of cascading, per se, that this invention posits as novel. What is novel is the new manner in which a windows cascade is generated to provide usability benefits not heretofore contemplated. This invention defines cascaded windows generated by the prior art as the xe2x80x9cForward Cascadexe2x80x9d style. With the forward cascade, an initial window is displayed at some screen location. At display of a child window, the position of the parent window remains fixed with the top edge of the child window""s title bar positioned at or slightly below the bottom edge of the parent window""s title bar. In this manner, each subsequent child window is displaced downward from the location of its parent window. A lateral displacement of each child window minimizes the effort required to access an arbitrary prior window. The relevant characteristic of the forward cascade is that once a window is displayed at a location, that location remains unchanged.
This invention discloses the xe2x80x9cBackward-Cascadexe2x80x9d. A backward-cascade is based on identifying a unique, non-varying screen coordinate called the xe2x80x9cFixed Pointxe2x80x9d relevant to the purpose of the user""s task and an xe2x80x9cAnchor-Pointxe2x80x9d defined relative to the origin of each window available for display in a cascade. How the fixed point and anchor-points are determined is disclosed below. With backward-cascade, windows are positioned such that each successive xe2x80x9cCurrent Windowxe2x80x9d has its anchor-point coincident with the fixed-point creates the backward-cascade. As generation of a backward-cascade proceeds, each ancestor window is shifted upward such that the bottom edge of the title bar of any given window is at or near the top edge of the title bar of its immediate successor. A lateral displacement results in the overall cascade direction being either up-and-right or up-and-left. To present a more systematic display to the user, the dimensions of each ancestor window in the backward-cascade are adjusted to equal the dimensions of the current window irrespective of the dimensions of said current window. For reasons detailed below, simultaneous with the window re-dimensioning, the invention deletes all data of each ascendant control other than the content of the title bar. Because the resulting ascendant windows are more apparitions than substance, they are given the appellation xe2x80x9cGhost Windows.xe2x80x9d
Research by Berlyne (D. E. Berlyne, Aesthetics and Psychobiology, 1971) investigated characteristics that influence how users orientate and navigate a document. Of the characteristics identified by Berlyne it can be argued that differences of comparative complexity are most likely to be greatest between documents displayed in tiled format and documents displayed in backward-cascade format. Two aspects of complexity of most relevance are the number of individual groupings and the positioning of the groups relative to each other. Tullis (Thomas Tullis, xe2x80x9cThe Formatting of Alphanumeric Displays: A Review and Analysisxe2x80x9d, Human Factors, 1983, pp.657-682) quantifies both of these aspects by defining a group to be: xe2x80x9c . . . any interconnected set of characters . . . separated by less than a threshold value. . . xe2x80x9d (p. 671). Tullis contends that displays with fewer groups are the less complex and that less complex documents are less difficult to navigate than documents that are more complex. Because of the removal of informational content of all ancestor windows, users facing windows displayed in backward-cascade only face groups contained in the current window while users of tiled windows face the aggregate groups contained in all windows. Tullis additionally argues that xe2x80x9c . . . based on knowledge of the location of some [groups] . . . one should be able to predict the locations of othersxe2x80x9d (p. 674). Tullis quantifies the complexity of relative group locations by defining arbitrarily positioned horizontal and vertical datum lines and then counts the number of different distances in the horizontal and vertical directions. Horizontal distances are counted from the vertical datum to a left vertical edge of the bounding rectangle of each group. Vertical distances are similarly counted from a horizontal datum to a horizontal edge of the bounding rectangle of each group. Applying Shannon""s Information Theory (reference U.S. Pat. No. 6,295,509 for application of Information Theory to computer-human interfaces), Tullis determines the number of bits of information required to identify the position of each group relative to the position of other groups and defines this result to be the measure of inter-group complexity. When used to compare a tiled to a backward-cascade display, the backward-cascade requires fewer xe2x80x9cbitsxe2x80x9d of information to communicate group location than does the equivalent display in tiled format. In consequence, the backward-cascade confronts the user with less complexity.
A less abstract appraisal of the user-friendliness of the backward display is implicit in the work of Mori (Hirohiko Mori and Yoshio Hayashi, xe2x80x9cVisual interference with user""s tasks on multi-window systemxe2x80x9d, Human-Computer Interaction: Software and Hardware Interfaces, 1993, pp. 80-86). Mori compares windows having irrelevant information displayed near the window of interest to the same window in which irrelevant, nearby information is suppressed. He finds that users make fewer errors and perform more rapidly when extraneous information does not appear near the area of user interest. Research by Zhai (Shumin Zhai, Julie Wright, et. al., xe2x80x9cGraphical means of directing users"" attention in the visual interfacexe2x80x9d, Human-Computer Interact: INTERACT""97, 1997, pp. 59-66) supports Mori with empirical evidence that shows a darkening or obliterating non-important information, as occurs with the ghost windows, helps focus user attention on the relevant information.
In preceding disclosures of the backward-cascade, the presentation was in general terms to communicate that its applicability is not confined to the display of controls. We now apply the backward-cascade to the display of multiple controls and adopt the term xe2x80x9cGhost Controlxe2x80x9d to denote ascendant controls with information empty shells. When the up-and-right direction is employed for the backward-cascade, the bottom-left corner of the maximum shell will coincide with the bottom-left corner of the maximum display as is shown in FIG. 1 at 1A22. This places the maximum shell origin on the left edge of the maximum display. Parameters rFixedPointDisplace13 X, 5B22, and rFixedPointDisplace_Y, 5B23, contain values representing the percent of width and height respectively that the fixed-point is displaced from the origin of the maximum shell. When the Spider format is employed to display a control, the center of the central area is declared the anchor-point. This is illustrated by FIG. 2A. If a control path is displayed using the traditional Vertical-Linear format the anchor-point will normally be defined as either the center of the title bar or the center of the top-most region. If, however, a Vertical-Linear format of the style depicted by FIGS. 3C is employed the recommended location of anchor-points will place the center of the first region displaying a choice-selection at the fixed point. It is appreciated and therefore subsumed by this invention that a variation of the above approach permits an anchor-point to be determined for a leftward displacement of the ascendant controls.
The major usability benefit of the backward-cascade arises because each successive control displayed is positioned with its anchor point coincident with the fixed-point. The result is that each successive control is displayed at an unvarying location juxtaposed with the work-area. In this way the user can view each control at a secondary, fixed-location xe2x80x9ccontrol work-areaxe2x80x9d that is calculated to be close to the application work-area. This is in accord with Shneiderman""s recommendation to xe2x80x9climit eye motion [while not] obscuring the xe2x80x9d point of regard""xe2x80x9c. This is very different from the prevailing pull-down menu display where the user is required to view each separate control at a different location with each such control positioned by dictates of a placement algorithm that need not meet Shneiderman""s recommendation.
The four diagrams that comprise FIG. 2 illustrate how positioning of the maximum display, the fixed-point, the anchor-points, the standardized dimensioning, and the ghost controls determine the location and appearance of a multi-control display. Note that diagrams of FIG. 2 communicate only those illustrative services needed for the example or to illustrate the possibility of a toolbar containing embedded list boxes, etc. Also note that FIG. 2 defers reference to the content of the central area, 2A202, 2A302, and 2A402, until disclosures by the next section, xe2x80x9cThe New Art of Control Navigationxe2x80x9d. FIG. 2A1 depicts the state of the Control Subsystem after positioning of the maximum display and calculation of the fixed-point, but before the initial control has been rendered to the screen. FIG. 2A2 duplicates FIG. 2A1 except the initial control is now displayed. Note that in FIG. 2A2 the shell center coincides with the fixed-point, 5D12, and that the width of the current shell, 5D07, is presented as being less than the width of the maximum display, 5C08. The dark area labeled xe2x80x9cLbl 1.3.2xe2x80x9d in FIG. 2A2 denotes that when this option is selected FIG. 2A3 results. FIG. 2A3 illustrates two notable points. First, toolbars frequently do not have descendants and when descendants do occur commonly present fewer options than does the parent. Second, FIG. 2A3 presents the case of the control of greatest width also being the control of greatest height. This illustrates how a maximally dimensioned, second-generation control can be displayed close to the work-area while avoiding any overlay. FIG. 2A3 additionally depicts conversion of the initial control displayed, 1A11 in FIG. 2A2, to ghost format as 2A201 in FIG. 2A3. This illustrates that at conversion to ghost format, the control is resized to the dimensions of the current control and its shell emptied of informational content. Selection of the area labeled xe2x80x9cLbl 2.5.5xe2x80x9d displays FIG. 2A4. This again illustrates the unvarying position of the central area. Note that the height of the xe2x80x9cLbl 2.5.5xe2x80x9d control is two region widths less than the height of its parent, which was stipulated to possess absolute maximum dimensions. This results in space appearing at the top and bottom bounds of the maximum display with at least a portion of the top-most of these spaces being occupied by a title bar.
It was shown above that, although possible, it is unlikely that under typical conditions the maximum display will overlay all or part of the work-area. It can now be shown that even if the maximum display does overlay the work-area, when dimensions of the maximum display derive from descendant controls that are seldom selected it is even less likely that a portion of the work-area will be overlaid. FIG. 1C4 illustrates a case in which the calculated best location results in the maximum display overlaying most of the work-area but because current control dimensions are less than maximum display dimensions the current display will overlay a smaller portion of the work-area than does the maximum display. An implication of this is that under certain circumstances it is possible that a currently displayed control can appear excessively far from the work-area. To exemplify, consider a control path in which a dialog box having large dimensions is displayed at the end of a traverse of menu controls having small dimensions. If dimensions of the maximum display are based on dimensions of the dialog box, the dialog box will be positioned in close proximity to the work-area. But because the menu controls will be centered on the fixed-point and have small dimensions, they may appear excessively distant from the work-area. Conversely, if dimensions of the maximum display derive from menu dimensions the best location for the maximum display will result in a fixed-point relatively close to the work-area. Although this displays the menu controls close to the work-area the dialog box will overlay at least a portion of the work-area. FIGS. 3A3 and 3A4 depict a fixed-point location determined from dimensions of the menu. As is illustrated by FIG. 3A4, this can result in the dialog box encroaching into the work-area.
The backward-cascade also resolves a problem of the pull-down control design that commonly results in forcing the user to perform extra manipulations. It is typical that with pull-down menu designs all ancestor controls are removed before display of a non-menu type child control since non-menu controls cannot be assigned a position in the manner of pop-up tiled submenus. Deferring disclosures of central area detail until later, FIG. 3 illustrates how the backward-cascade applied to display of multiple controls formatted in Spider style handles a display of mixed type controls. FIG. 3A1 displays an initial main menu at the location determined by the fixed-point, 5D12, of a maximum display, 1A08, assigned its best position by methods disclosed above. Selection of the xe2x80x9cFormatxe2x80x9d option in FIG. 3A1 generates the child menu displayed by FIG. 3A2. Selection of the xe2x80x9cText Propertiesxe2x80x9d of FIG. 3A2 produces the dialog box displayed in FIG. 3A2. This invention treats the dialog box of FIG. 3A3 as the current control of a control path containing two ascendant menu controls that have been converted to ghost format. Finally, selection of the xe2x80x9cFontxe2x80x9d region in FIG. 3A3 generates the list box of FIG. 3A4. It is to be noted that this list box is displayed centered at the same fixed-point coordinate as the initial main menu. FIG. 3A4 illustrates the resulting control path of mixed control types, which contains two menu ghost controls, one dialog ghost control, and a list box current control.
Clipping can occur when employing the preferred implementation if the dimensions used for the maximum display are less than the absolute maximum dimensions. The circumstances in which this is most likely arise when: (1) a dimension of the control requested exceeds that of the declared maximum display dimension, (2) the control dimension exceeds half the dimension of the display-zone, and (3) the work-area is relatively close to the center of the display-zone. These circumstances will normally not be common but when they do occur, the preferred implementation discloses processes to remove the clipping based on shifting the fixed-point. Such an action, to a greater or lesser degree, violates Hix""s Principle of Least Amazement and must be considered undesirable.
It is better to address the issue of clipping at the design stage by designing controls that assure that the bounding rectangle of no control display has dimensions exceeding one-half the difference between the display-zone and work-areas of likely dimensions. Design specifications can require the set of controls available to an application to have dimensions that do not vary by more than a stated amount. Actions conducive to this are: complete paths to data files should seldom be displayed; succinct but real-world labels should be chosen for item labels; dialog boxes should seldom include the permanent display of controls containing lists of arbitrary length; icon groups should be of similar size.
This invention has now disclosed procedures by which: (1) a non-clipped control display can be positioned in a manner that is predictable, juxtaposed with the work-area, and does not or minimally overlays the work-area, (2) assures that the positioning of successive current controls is unvarying irrespective of control path length, and (3) offers a display that is parsimonious of screen real estate. There remain the three problems of: (1) empowering the user to redisplay an arbitrary ancestor, (2) providing a user-friendly recovery from selecting an undesirable service, and (3) empowering the user to select multiple services when desired but not perform unnecessary manipulations when single selection is desired.
Resolution of the first of these three problems is critical since this invention proposes that the initial menu and toolbar controls are to be popped-up upon user demand. Given that users will frequently make multiple selections from the initial control, provision of a user-friendly capability for its re-display that does not require the user to exit then re-activate the Control Subsystem is desirable. It is also expected that users will sometimes desire to redisplay other than the initial control. As the user redisplays an ancestor control it can be presumed the user is primarily concerned with identifying the control desired and is generally indifferent to constraints of display technology that require different graphics for different types of choice-selections. Because the only information contained in a ghost control is the identifying title bar and the control""s relative position in the control path, ghost controls contain precisely the information needed to identify a desired ancestor control. It is disclosed in U.S. Pat. No. 5,506,699 that with the Spider format the user may redisplay any arbitrary ancestor control in either of two ways: (1) click on any visible portion of the appropriate ghost control and (2) click the appropriate location of the central area.
A control that can reduce even this level of explicit user action to redisplay an ancestor control will be even more user-friendly. Before disclosing how this third method of ancestor redisplay is achieved it is first necessary to consider the special purpose function areas within the control graphic which will hereafter be termed the xe2x80x9cManagement Areaxe2x80x9d; i.e., the portions of a control graphic shell not displaying choice-selections. FIGS. 3B through 3G illustrate configurations of the management area of Spider and Vertical-Linear formatted controls that are recommended for management of the menu controls, toolbar controls, and controls that provide lists of arbitrary length. Several aspects of FIGS. 3B through 3G relating to the Spider format have been previously disclosed, perhaps with different labeling, in U.S. Pat. Nos. 5,596,699 and 6,239,803. These previous disclosures are ascendant control redisplay, 3B08, page management for controls containing lists, 3D08, toggle between menu and toolbar controls, 3B06, and xe2x80x9cExitxe2x80x9d, 3B02, to return the user directly to the application program.
Other aspects of the management area are novel. Paired with the xe2x80x9cExitxe2x80x9d capability is the xe2x80x9cAbortxe2x80x9d, 3B04, capability that reverses all services performed during the current Control Subsystem activation before returning the user to the application program in the manner of xe2x80x9cExit.xe2x80x9d The invention also discloses the xe2x80x9cDonexe2x80x9d, 3B14, and xe2x80x9cCancelxe2x80x9d, 3B16, capabilities. As justified and elaborated below, xe2x80x9cDonexe2x80x9d parallels the xe2x80x9cExitxe2x80x9d capability except it returns processing to the most recent ancestor control containing the explicit xe2x80x9cDonexe2x80x9d capability. The xe2x80x9cCancelxe2x80x9d capability reverses services performed by the current control before performing as the xe2x80x9cDonexe2x80x9d capability. To permit user declared multiple selection from a control, the invention provides the xe2x80x9cMulti-Selectxe2x80x9d area, labeled with either this or a synonymic phrase. When the user selects xe2x80x9cMulti-Select,xe2x80x9d 3B12, the xe2x80x9cMulti-Selectxe2x80x9d area is dynamically converted to the xe2x80x9cDonexe2x80x9d and xe2x80x9cCancelxe2x80x9d areas. If application designers know that they have correctly identified a control that will generally be used for multiple selections they will provide a graphic that explicitly provides the xe2x80x9cDonexe2x80x9d and xe2x80x9cCancelxe2x80x9d areas. Obversely, if application designers know that they have correctly identified a control that will be used for single selection they will display a graphic that provides for single-selection by removing the xe2x80x9cMulti-Selectxe2x80x9d label, display the xe2x80x9cMulti-Selectxe2x80x9d label in light gray, or via some alternate visual effect to denote single selection. For controls that designers have determined to be employed at arbitrarily times for both single and multiple selections, designers present the xe2x80x9cMulti-Selectxe2x80x9d capability in a manner to denote its active status. When the user observes an active xe2x80x9cMulti-Selectxe2x80x9d area and desires a single selection, the xe2x80x9cMulti-Selectxe2x80x9d area is ignored, the user selects the desired service, and the Control Subsystem responds as disclosed below. If, however, the user desires multiple services the xe2x80x9cMulti-Selectxe2x80x9d area is selected to generate the xe2x80x9cDonexe2x80x9d and xe2x80x9cCancelxe2x80x9d areas, the user makes multiple service selections, a termination capability is selected, and the Control Subsystem responds as disclosed below.
How the control responds to activation of the xe2x80x9cExitxe2x80x9d, xe2x80x9cAbortxe2x80x9d, Donexe2x80x9d, xe2x80x9cCancelxe2x80x9d, and xe2x80x9cUndoxe2x80x9d capabilities determines how the control performs variations of reverse traverse. It is noted above that when xe2x80x9cExitxe2x80x9d is selected the Control Subsystem is terminated and the user returned to the application program with all services maintained that have been selected. When xe2x80x9cAbortxe2x80x9d is selected all services selected during the current Control Subsystem activation are reversed, the Control Subsystem is terminated, and the system returns to the state existing at the time the Control Subsystem was activated.
Known art provides for the concepts of xe2x80x9cUndoxe2x80x9d and xe2x80x9cRedoxe2x80x9d. The new art now disclosed relates to managing the undo of arbitrary services. Reference to the literature cited communicates that the prior art of undo does not offer user-friendly mechanisms that initiate the undo of arbitrary services performed during the current Control Subsystem activation. The xe2x80x9cUndoxe2x80x9d, 3B10, and xe2x80x9cCancelxe2x80x9d, 3B16, capabilities are disclosed to provide the means for reversing arbitrary selections made during the current Control Subsystem activation. Subject to qualifications noted below, when the xe2x80x9cUndoxe2x80x9d area of a current control management area is selected, the last service performed by that current control is reversed. This differs from the xe2x80x9cUndoxe2x80x9d normally found as an option in a submenu of the main menu, which reverses the chronologically last user action. While also subject to qualifications noted below, when the xe2x80x9cCancelxe2x80x9d portion of the management area is selected all services performed by selections from the currently displayed control containing the activated xe2x80x9cCancelxe2x80x9d are reversed. This differs from the xe2x80x9cAbortxe2x80x9d capability, which reverses all services performed during the current Control Subsystem activation.
To introduce the added capabilities of xe2x80x9cDonexe2x80x9d and xe2x80x9cCancelxe2x80x9d the concept of xe2x80x9cStaged Reverse Traversexe2x80x9d is disclosed. It has been noted that selection of a ghost control or a control identification in the management area, 3B08, enables the user to explicitly redisplay an identified ancestor control. Staged reverse traverse provides the user with a knowable, predefined reverse traverse. Under staged reverse traverse termination of any control by either an explicit or implicit xe2x80x9cDonexe2x80x9d results in the Control Subsystem traversing through ancestor controls in reverse order of age seeking the most recent ancestor containing an explicit xe2x80x9cDonexe2x80x9d. If found this ancestor is redisplayed. Only if no prior control contains an explicit xe2x80x9cDonexe2x80x9d does the Control Subsystem terminate and return the user to the application in the manner of xe2x80x9cExitxe2x80x9d. After control specific reversing of services is complete, the xe2x80x9cCancelxe2x80x9d capability performs exactly as does the xe2x80x9cDonexe2x80x9d capability. Activation of a control""s xe2x80x9cUndoxe2x80x9d does not initiate any reverse traverse.
The example of three menus and a dialog box presented above illustrates the benefits of staged reverse traverse. Presume the main menu and all submenus are displayed in pop-up style. Assume further that the main menu provides the xe2x80x9cDonexe2x80x9d capability as does the xe2x80x9cViewxe2x80x9d submenu and the xe2x80x9cToolbarxe2x80x9d submenu of the xe2x80x9cViewxe2x80x9d submenu. With these opportunities the user can select the xe2x80x9cView xe2x80x9d option from the main menu then select the xe2x80x9cToolbar xe2x80x9d option from the popped-up View submenu which presents the user with a submenu that contains a vertical list of check boxes labeled with the names of basic toolbars. The user checks or unchecks as many basic toolbars as desired. When selection is complete the xe2x80x9cDonexe2x80x9d capability is activated. Rather than terminating the Control Subsystem, the View control is redisplayed. The user may now select the Header/Footer option, select xe2x80x9cPage Numberxe2x80x9d, select xe2x80x9cDatexe2x80x9d, and then select xe2x80x9cDonexe2x80x9d. The View control is again displayed and the user may select the xe2x80x9cRulerxe2x80x9d option. As Ruler does not display a child control the service is performed and the View control continues to display. If the user is finished with the View submenu, xe2x80x9cDonexe2x80x9d is selected which redisplays the main menu. If desired, the user may now undertake an additional main menu selection. At any time during these manipulations, the user may select the xe2x80x9cExitxe2x80x9d capability to maintain all services thus far performed, terminate the Control Subsystem, and immediately return to the application program.
This invention details a method of display for a graphical user interface of a computer that comprises identifying a maximum display in which a size of the maximum display is based at least in part on at least one of a probable-largest required size and an absolute-largest required size. The method of display also comprises positioning the maximum display in a best manner such that: (1) the maximum display minimally overlays a work area of a display zone of an active display, (2) the maximum display does not extend outside the display zone, and (3) subject to the first two criteria, the maximum display is minimally distant from a user specified optimum display location. The method of display involves the ability to identify a plurality of permitted, generation ordered, sequences of differing controls, wherein a control corresponds to a displayable graphic having at least a shell area for presentation of at least one of choice selections and textual matter. The method of control display enables the user to select from the plurality of possible control paths a desired control path for resulting in a display based at least in part on a position of the maximum display, wherein the control path does not extend outside the display zone; the display zone corresponding to a delimited area of the active display within which the control path may be rendered. The work area referenced above corresponds to an area of the display zone presumed to be of interest to the user.
The method of display introduced by this invention further comprises the steps of identifying a center of the work area, identifying a center of the display zone, translating an origin of a coordinate system of the active display to coincide with the center of the work area, identifying a quadrant of the coordinate system containing the center of the display zone, and positioning a reference point, which will normally be a corner, of the maximum display within the quadrant of the coordinate system containing the center of the display zone.
An alternate approach to achieving the purpose of the preceding paragraph is to utilize the steps of identifying a center of the work area, identifying a center of the display zone, translating an origin of a coordinate system of the active display to coincide with the center of the display zone, identifying a quadrant of the coordinate system containing the center of the work area, and positioning a reference point, which will normally be a corner of the maximum display, within the quadrant of the coordinate system containing the center of the work area.
Irrespective of which of the two preceding axis translations is employed, the maximum display is positioned within the display zone based at least in part on a plurality of at least one user supplied parameters. This positioning is performed in a manner such that the maximum display is positioned within the display zone based at least in part on a first user-supplied percentage parameter applied to a horizontal dimension of the work area and a second user-supplied percentage parameter applied to a vertical dimension of the work area. This method further comprises the step of selectively overriding the plurality of at least one user supplied parameter to ensure that the maximum display does not extend outside the display zone.
The initial control displayed and subsequently manipulated by a user has an associated control subsystem that remains active during an activation interval controlled by the user and during which a succession of control instances may be displayed corresponding to a permitted control path. The approach employed by the control subsystem comprises defining a maximum shell within which is defined a fixed coordinate that remains fixed during the activation interval unless the size of the maximum display is insufficient to permit display of the control path in the best manner in which the control display does not extend outside the display zone. All controls displayed during the activation interval subsequent to the initial control instance are displayed relative to the fixed coordinate.
The maximum shell is defined in a manner such that the maximum shell definition comprises the steps of identifying a shell having a first greatest requirement associated with a first dimensional characteristic of the control shell and identifying a shell having a second greatest requirement associated with a second dimensional characteristic of the control shell. The first dimensional characteristics and second dimensional characteristics of control shells correlate to describe areas of control shells. The first dimensional requirement and second dimensional requirement are determined based at least in part on at least one of a majority of the control shells and all of the control shells. Within this maximum shell, definition method the first dimensional characteristic is height and the second dimensional characteristic is width. The first greatest requirement is the greatest height, and wherein the second greatest requirement is the greatest width.
There is also defined an anchor-point for each of a plurality of at least one control type based on a plurality of at least one user supplied parameters. This anchor-point is positioned within a shell of each of a plurality of at least one differing control types based at least in part on a first user-supplied percentage parameter applied to the first dimensional characteristic of the shell and a second user-supplied percentage parameter applied to the second dimensional characteristic of the shell.
The method of creating a control display further entails the step of defining an anchor-point for each of a plurality of at least one control type based on a plurality of at least one user supplied parameters. Based in part on these parameters the associated control subsystem produces the control display. This rendering of the display is performed in a manner that positions the anchor point of a current control to coincide with the fixed point. The current control is defined to be the control of a control path that is the control most recently displayed.
Processes performed by the associated control subsystem affect repositioning of an ancestor display instance of an ancestor control associated with a control path of the current control. This repositioning of the ancestor display instance affects a lateral repositioning a predetermined distance to a side of a child display instance of a child display instance of a child control associated with the ancestor control. A vertical displacement is also performed that is a second predetermined distance in relation to the child display instance with the ancestor being displayed behind the display of its child. The current display instance and each ancestor display instance has a title bar display that at least in part determines the vertical displacement of the ancestor display instance; the vertical displacement upward in relation to the child display instance being not less than the height of the title bar display such that the title bar display of the current display instance and each ancestor display instance is simultaneously visible.
The method of generating a control display additionally re-dimensions each ancestor display instance to the dimensions of the current display instance. An additional action of the associated control subsystem is to provide each extant ancestor display instance with a predetermined visual treatment that communicates an absence of display content.
The method for generation of a control display contains various capabilities that permit the user to manage what controls are displayed and how the control path is displayed. There is proposed a capability that provides a current control with an exit capability that results in removal of a graphical display that results from rendering the control path to the active display. An aspect of the exit capability is a return of subsequent computer processing to a calling application. The current control corresponds to the control of a control path that is the control most recently displayed.
There is proposed a capability wherein a current control has an abort capability that permits a reversal of each service performed during a current activation of a control subsystem. The abort capability additionally initiates removal of a graphical display that results from rendering the control path to the active display then returns subsequent computer processing to a calling application. The reversal of services affects a return of the calling application without provision of any services selected during manipulation of the control path to a system state existing immediately prior to performance of a choice selection.
There is proposed a capability wherein the current control has a done capability, wherein the done capability of the current control has either an explicit and implicit done capability. The done capability of the current control permits a search for an ancestor control associated with a control path of the current control that is a most recent ancestor control having the explicit done capability. The done capability of the current control permits removal of all controls descending from the most recent ancestor control with subsequent display of the most recent ancestor control and its antecedents. If the search for an explicit done capability among ancestors of the current control is not successful, the control display is removed and the done capability of the current control affects return of subsequent computer processing to a calling application.
There is proposed a capability wherein a current control has a cancel capability. The cancel capability permits reversal of all services in a plurality of services performed by a control subsystem, wherein the plurality of services were performed by the control subsystem in response to manipulation of the current control by the user. The cancel capability of the current control permits removal of all controls descending from the most recent ancestor control with subsequent display of the most recent ancestor control and its antecedents. If the search for an explicit done capability among ancestors of the current control is not successful, the control display is removed and the cancel capability of the current control affects return of subsequent computer processing to a calling application.
There is proposed a capability wherein a current control has a multi-select capability, wherein the multi-select capability permits the user to convert to a multiple selection mode from a single selection mode at an option of the user wherein the multiple selection mode permits the user to perform multiple selections from the current control. This means that a multi-select capability within the current control is configurable by the user for permitting the user to perform multiple selections
There is proposed a capability wherein a current control has an undo capability. The undo capability permits a reversal of a last service performed by a control subsystem in response to user manipulation of a current control or manipulation a redisplayed ancestor control that has become a current control.
The apparatus for this invention comprises a user-interface for use with a computer that provides an operating system, an input means in communication with said operating system for accepting input from a user, an active display in communication with the operating system, a plurality of controls in communication with the operating system. The plurality of controls referenced corresponds to graphics displayable to the active display. Each of these graphics has a shell area for presentation of at least one of choice-selections and textual matter. There exists at least one control path associated with said plurality of controls, each such control path corresponding to a permitted, generation ordered sequence of said controls. There is also a display zone associated with the active display that corresponds to a delimited area of the active display for rendering said control path as a control display to the active display. The said control path has a first dimensional characteristic and a second dimensional characteristic in which the first dimensional characteristic and the second dimensional characteristic correlate to describe an area of the control display. There is also a work area associated with the display zone, the work area corresponding to an area of the display zone of interest to the user. Within this apparatus the operating system manages the input means, the active display, and the plurality of controls in a best manner to achieve a best rendering of an entirety of the control display specified by the user within the display zone in which the control display minimally overlays said work area.
The operating system employs a display method for achieving the best rendering. The display method which provides the best rendering comprises identifying a maximum display, wherein a size of the maximum display is based at least in part on at least one of a first greatest requirement associated with the first dimensional characteristic of a selectable control and a second greatest requirement associated with a second dimensional characteristic of a selectable control. Positioning the maximum display in the best manner, entails positioning the maximum display to minimally overlay said work area of said display zone of said active display, and wherein the maximum display does not extend outside said display zone. The best display of the said control path selected by the user is based at least in part on a position of the maximum display region in which the said control path does not extend outside said display zone, the control display as near the work area as possible while achieving a minimal overlay of the work area.
To affect the preceding positioning entails the display method further comprising the steps of identifying a center of the work area, identifying a center of the display zone, translating an origin of a coordinate system of the active display to coincide with the center of the work area, identifying a quadrant of the coordinate system containing the center of the display zone, and positioning a reference point of the maximum display within the quadrant of the coordinate system containing the center of the display zone. Generally, the reference point is a corner of the maximum display.
The preceding positioning can alternatively entail a display method further comprising the steps of identifying a center of the work area, identifying a center of the display zone, translating an origin of a coordinate system of the active display to coincide with the center of the display zone, identifying a quadrant of the coordinate system containing the center of the work area, and positioning a reference point of the maximum display within the quadrant of the coordinate system containing the center of the work area. Generally, the reference point is a corner of the maximum display.
A current control corresponding to the control of a control path that is the control most recently displayed has navigation capabilities that include at least one of a multi-select capability and an undo capability. The multi-select capability permits the user to select a plurality of services from the current control for performance by a control subsystem. The undo capability permits a reversal of at least one of a last service and a last plurality of services performed by a control subsystem in response to user manipulation from at least one of the current control and a previously current control.
A current control corresponding to the control of said control path that is the control most recently displayed has navigation capabilities that include at least one of an exit capability a done capability. The exit capability permits removal of the control display and return to the calling application. A done capability permits at least one of: (1) removal of all controls descending from a most recent ancestor control explicitly having the done capability with display of the most recent ancestor control and its antecedents, and (2) removal of the control display and return to a calling application. If the done capability performs an unsuccessful search for the most recent ancestor control, the done capability performs removal of the control display and return to the calling application.
A current control corresponding to the control of said control path that is the control most recently displayed has navigation capabilities include at least one of an abort capability and a cancel capability. The abort capability permits reversal of all services performed during a current activation of an associated control subsystem of the current control, removal of the control display, and return to a calling application. The cancel capability permits reversal of all services performed during a current activation of an associated control subsystem of the current control and at least one of: (1) removal of all controls descending from a most recent ancestor control explicitly having the done capability and display of the most recent ancestor control and its antecedents, and (2) removal of the control display and return to a calling application. If the cancel capability performs an unsuccessful search for the most recent ancestor control, it performs removal of the control display and return to the calling application.
The apparatus of this invention permits a control display to be rendered in a manner permitting display of the current control in reference to a fixed point. Each ancestor control is displayed behind its child control and at least one of offset in a first direction relative to its child control and offset in a second direction relative to its child control. The fixed point remains fixed during an activation interval of an associated control subsystem unless repositioning of the fixed point is required to facilitate the best rendering.
An additional capability of the apparatus for performing the display method comprises the step of defining an anchor-point for each of a plurality of at least one control type based on a plurality of at least one user supplied parameters. The anchor-point is positioned within a shell of each of a plurality of at least one differing control types based at least in part on a first user-supplied percentage parameter applied to the first dimensional characteristic of the shell; and a second user-supplied percentage parameter applied to the second dimensional characteristic of the shell.
It was stated above that the size of the maximum display is based at least in part on a first greatest requirement and on a second greatest requirement. The first greatest requirement and the second greatest requirement are determined based at least in part on dimensional characteristics of all control paths selectable by the user. The first greatest requirement and the second greatest requirement are additionally determined based at least in part on dimensional characteristics of a majority of control paths selectable by the user, wherein a small population of control paths selectable by a user having exceptionally large requirements regarding at least one dimensional characteristic are excluded from the majority.
A probable determination can be employed to determine the first greatest requirement and the second greatest requirement wherein the determination is based on dimensional characteristics of all control paths selectable by the user. A probable determination of the first and the second greatest requirement is determined based on dimensional characteristics of a majority of control paths selectable by the user in which a small population of control paths selectable by a user have exceptionally large requirements regarding at least one dimensional characteristic are excluded from the majority. The size of the maximum is to be based on the probable determination unless the size of the maximum display is insufficient to permit display of the control path in a best manner whereby the size of the maximum display is based on the absolute determination it the size of the maximum display is insufficient to permit display of the control path in the best manner.